The present invention relates to a print control apparatus, print data generating apparatus, print control method, print data generating method, and storage medium and, more particularly, a print control apparatus and print data generating method of controlling print modes and generating printer control commands in a system comprised of an information processing apparatus such as a personal computer and a printer.
Some conventional print systems have a plurality of print modes in printing operation using a printer. For example, the print modes include the raster graphics print mode of sending data rasterized by a host unit and printing the data, and the vector graphics print mode of sending vector data to the printer and making the printer rasterize the data and print it. In such a print system comprised of a host computer and a printer connected thereto, although a plurality of print modes can be executed, only the print mode selected by a user is used for printing.
A print system is available to select a method of generating printer control commands for controlling a printer from, for example, a method of generating intermediate code data first and then generating final printer control commands, and a method of directly generating printer control commands. In this print system, the printer control command generating method explicitly selected by the user is used.
In some print systems, when a printer control command is to be generated in accordance with a selected print mode, the printer control command is generated from a print instruction generated by a graphics engine prepared in an application or OS. In such a print system, a print instruction is generated by the graphics engine regardless of the selected print mode.
With regard to a printer control command generating method, a program (raster printer driver) is known, which can generate printer control commands while immediately converting (rasterizing) print instructions issued from various applications into print images in a host computer connected to a printer. However, a printer driver designed to perform such operation must temporarily store a page image in a memory in the form of image data before generating a printer control command. With an increase in printer resolution in recent years, a memory area on the order of several megabytes is required depending on circumstances.
With a printer driver designed to perform such operation, therefore, a page is divided into smaller rectangular areas called bands and pieces of information rasterized into print images are stored as pieces of information corresponding to the respective bands in a memory area (band memory). Similar storing operation is repeated for each of the divided areas to store rasterized information in units of pages. When the last print instruction from the application is processed for one band area, the band memory is divided into small areas to generate a printer control command, as needed. The above procedure is continued while page break processing and the like are performed, as needed, until all the bands constituting all print pages are completely processed.
FIG. 17 is a flow chart showing the contents of processing performed by a conventional raster printer driver. First of all, the printer driver receives a print instruction from an application (step S1701). The printer driver checks whether the print instruction indicates a print start (step S1702). If the printer driver determines that the instruction is a print start request (YES in step S1702), the printer driver ensures a memory area (band memory) for storing a rasterized print image in the RAM of a host computer, and initializes the area (step S1703). The printer driver receives a print instruction from the application again.
If the printer driver determines in step S1702 that the print instruction received from the application does not indicate a print start (NO in step S1702), the printer driver checks whether the instruction indicates a print end (step S1704). Assume that the printer driver determines that the instruction does not indicate a print end (NO in step S1704). In this case, only when the instruction is a print request, the printer driver constructs (rasterizes) a print image corresponding to the contents of the request, and stores it in the band memory (step S1705). The processing in step S1705 is repeated until it is determined that the last print instruction from the application is processed for the band area in process (step S1706). If the printer driver determines in step S1706 that the last print instruction for the band area in process is processed (YES in step S1706), the flow advances to step S1707 to properly divide the band area into small areas and generate printer control commands corresponding to the respective small areas (step S1707).
Note that after step S1707 is processed, the printer driver initializes the band memory (step S1708) and starts receiving a print instruction corresponding to the new band area from the application. If the printer driver determines in step S1704 that the print instruction received from the application indicates a print end (YES in step S1704), the printer driver releases the band memory from the RAM (step S1709), and terminates the processing.
The following four problems are posed in this print system.
The first problem is that print processing is executed by using the print mode selected by the user without any consideration of the print throughput of the printer, proper printing, and the like in spite of the fact that a plurality of print modes can be selected.
The second problem is that print processing is executed by using the printer control command generating method explicitly selected by the user without any consideration of the print throughput of the printer, proper printing, and the like in spite of the fact that a plurality of printer control command generating methods can be selected.
According to the third problem, even if a print mode is selected in consideration of the print throughput of the printer, proper printing, and the like, a print instruction is generated irrelevantly to the print mode, and a print instruction unsuited to the print mode may be generated.
With regard to the fourth problem, the conventional raster printer driver also generates a printer control command corresponding to a band area in which printing is not actually performed, and transmits it to the printer in step S1707 in FIG. 17. In addition, even when only a printer control command corresponding to each band area having undergone printing is to be generated, all the contents of the band memory must be checked one by one to check whether printing has been performed in each of the divided small areas.
The present invention has been made to solve the first problem, and has as its object to provide a print system, print control apparatus, and print control method which can select the optimal print mode for a preset condition, increase the print throughput of the printer, and obtain proper print results.
The present invention has been made to solve the second problem, and has as its object to provide a print system, print control apparatus, and print control method which can select the optimal printer control command generating method for a preset condition, increase the print throughput of the printer, and obtain proper print results.
The present invention has been made to solve the third problem, and has as its object to provide a print system, print control apparatus, and print control method which can receive print instructions in a form suited to a selected print mode.
The present invention has been made to solve the fourth problem, and has as its object to provide a print system, print control apparatus, and print control method which can reduce or eliminate printer control command generation corresponding to non-printed areas in a band area.
In order to achieve the above objects, a print control apparatus, print data generating apparatus, print control method, print data generating method, and storage medium according to the present invention have the following arrangements, steps, and codes.
There is provided a print control apparatus for processing print information, which is connected to a printer, comprising selection means for selecting a print mode in accordance with a set condition, and control means for causing a printer driver to generate print data in the print mode, selected by the selection means, in accordance with a print instruction generated by a graphics engine.
There is also provided a print control apparatus for processing print information, which is connected to a printer, comprising selection means for selecting a print mode in accordance with a set condition, and generating means for generating print data in the print mode, selected by the selection means, in accordance with a print instruction generated by a graphics engine.
There is also provided a print data generating apparatus comprising print image construction means for constructing a print image on the basis of a print request received from application software, storage means for storing the print image constructed by the print image construction means in a band memory, area forming means for forming area information containing all print images constructed by the print image construction means, band memory dividing means for dividing the band memory in units of scan lines, and sequentially reading out the stored print images, determination means for determining whether the divided scan lines overlap the area information containing all the print images, and control command generating means for generating a printer control command corresponding to a print image at an overlapping portion on the basis of the determination.
There is also provided a print control method of processing print information, comprising the selection step of selecting a print mode in accordance with a set condition, and the control step of causing a printer driver to generate print data in the print mode, selected in the selection step in accordance with a print instruction generated by a graphics engine.
There is also provided a print control method of processing print information, comprising the selection step of selecting a print mode in accordance with a set condition, and the generating step of generating print data in the print mode, selected in the selection step, in accordance with a print instruction generated by a graphics engine.
There is also provided a print data generating method comprising the print image construction step of constructing a print image on the basis of a print request received from application software, the storage step of storing the print image constructed in the print image construction step in a band memory, the area forming step of forming area information containing all print images constructed in the print image construction step, the band memory dividing step of dividing the band memory in units of scan lines, and sequentially reading out the stored print images, the determination step of determining whether the divided scan lines overlap the area information containing all the print images, and the control command generating step of generating a printer control command corresponding to a print image at an overlapping portion on the basis of the determination.
There is also provided a storage medium storing a print control program for processing print information, the program comprising a code for the selection step of selecting a print mode in accordance with a set condition, and a code for the control step of causing a printer driver to generate print data in the print mode, selected in the selection step, in accordance with a print instruction generated by a graphics engine.
There is also provided a storage medium storing a print control program for processing print information, the program comprising a code for the selection step of selecting a print mode in accordance with a set condition, and a code for the generating step of generating print data in the print mode, selected in the selection step, in accordance with a print instruction generated by a graphics engine.
There is also provided a storage medium storing a program for generating print data, the program comprising a code for the print image construction step of constructing a print image on the basis of a print request received from application software, a code for the storage step of storing the print image constructed in the print image construction step in a band memory, a code for the area forming step of forming area information containing all print images constructed in the print image construction step, a code for the band memory dividing step of dividing the band memory in units of scan lines, and sequentially reading out the stored print images, a code for the determination step of determining whether the divided scan lines overlap the area information containing all the print images, and a code for the control command generating step of generating a printer control command corresponding to a print image at an overlapping portion on the basis of the determination.
According to a preferred aspect of the present invention, in the print control, the condition is a name of an application serving as a source from which the print instruction is issued.
According to another preferred aspect of the present invention, in the print control apparatus, the condition is a specific function designated by the print instruction.
According to still another preferred aspect of the present invention, in the print control apparatus defined in claim 1, the condition is a hardware function of the printer.
According to still another preferred aspect of the present invention, in the print control apparatus, the condition is that the print instruction is a special print instruction.
According to still another preferred aspect of the present invention, in the print control apparatus, the condition for selecting the print mode is acquired from a printer driver unique to the printer.
According to still another preferred aspect of the present invention, in the print control apparatus, the apparatus further comprises spool means for converting the print instruction into an intermediate code and temporarily storing the intermediate code, and de-spool means for causing the graphics engine to regenerate the print instruction on the basis of the intermediate code stored in the spool means, and the control means causes the printer driver to generate the print data in accordance with the print instruction regenerated by the graphics engine.
According to still another preferred aspect of the present invention, in the print control apparatus, when the graphics engine is caused to regenerate the print instruction, the graphics engine is notified of an ability of the printer driver in the print mode selected by the selection means, and is caused to generate the print instruction in accordance with the ability.
According to still another preferred aspect of the present invention, in the print control apparatus, the apparatus further comprises print mode storage means for storing print modes selected by the selection means in units of pages, and the control means changes the print mode in units of pages in accordance with the print mode stored in the print mode storage means.
According to still another preferred aspect of the present invention, in the print control apparatus, the apparatus further comprises print mode storage means for storing print modes selected by the selection means in units of pages, the spool means generates an intermediate code for performing layout printing on a single paper sheet from a print instruction for a plurality of pages when the printer is to perform layout printing of the plurality of pages on the single paper sheet, and the control means causes the printer driver to generate the print data to be printed on the single paper sheet in the print modes stored in the print mode storage means in units of pages on the basis of the intermediate code.
According to still another preferred of the present invention, in the print control apparatus, the apparatus further comprises print mode storage means for storing the print modes, in units of pages, which are selected by the selection means in units of pages, the spool means comprises print mode rearranging means for converting the print instruction into an intermediate code and rearranging the print modes in the print mode storage means in accordance with a rearranged order of pages to be actually printed by the printer, and the control means changes the print modes in units of pages in accordance with the order changed by the print mode rearranging means, and causes the printer driver to generate the print data.
According to still another preferred of the present invention, in the print control apparatus, the print modes include a raster graphics print mode of converting the print data into raster data, and a vector graphics print mode of converting the print data into vector data.
According to still another preferred aspect of. the present invention, in the print control apparatus, the condition is a name of an application serving as a source from which the print instruction is issued.
According to still another preferred of the present invention, in the print control apparatus, the condition is a specific function designated by the print instruction.
According to still another preferred aspect of the present invention, in the print control apparatus, the condition is a hardware function of the printer.
According to still another preferred aspect of the present invention, in the print control apparatus, the condition is that the print instruction is a special print instruction.
According to still another preferred aspect of the present invention, in the print control apparatus, the apparatus further comprises spool means for converting the print instruction into an intermediate code and temporarily storing the intermediate code, and de-spool means for causing the graphics engine to regenerate the print instruction on the basis of the intermediate code stored in the spool means, and the generating means generates the print data in accordance with the print instruction regenerated by the graphics engine.
According to still another preferred aspect of the present invention, in the print control apparatus, when the graphics engine is caused to regenerate the print instruction, the graphics engine is notified of an ability of the generating means in the print mode selected by the selection means, and is caused to generate the print instruction in accordance with the ability.
According to still another preferred aspect of the present invention, in the print control apparatus, the apparatus further comprises print mode storage means for storing print modes selected by the selection means in units of pages, and the generating means changes the print mode in units of pages in accordance with the print mode stored in the print mode storage means.
According to still another preferred aspect of the present invention, in the print control apparatus, the apparatus further comprises print mode storage means for storing print modes selected by the selection means in units of pages, the spool means generates an intermediate code for performing layout printing on a single paper sheet from a print instruction for a plurality of pages when the printer is to perform layout printing of the plurality of pages on the single paper sheet, and the generating means generates the print data to be printed on the single paper sheet in the print modes stored in the print mode storage means in units of pages on the basis of the intermediate code.
According to still another preferred aspect of the present invention, in the print control apparatus, the apparatus further comprises print mode storage means for storing the print modes selected by the selection means in units of pages, the spool means comprises print mode rearranging means for converting the print instruction into an intermediate code and rearranging the print modes in the print mode storage means in accordance with a rearranged order of pages to be actually printed by the printer, and the generating means changes the print modes in units of pages in accordance with the order changed by the print mode rearranging means, and generates the print data.
According to still another preferred of the present invention, in the print control apparatus, the print modes include a raster graphics print mode of converting the print data into raster data, and a vector graphics print mode of converting the print data into vector data.
According to still another preferred of the present invention, in the print data generating apparatus, the area containing all the print images constructed by the print image construction means is rectangular.
According to still another preferred aspect of the present invention, in the print data generating apparatus, the apparatus further comprises storage means for storing printed area information in units of print requests, and second determination means for determining whether the area information stored in the storage means overlaps each of the scan lines, and the control command generating means generates a printer control command corresponding to a print image on the overlapping portion.
According to still another preferred of the present invention, in the print data generating apparatus, the scan lines are formed in units of horizontal lines each having a height of one pixel.
According to still another preferred aspect of the present invention, in the print data generating apparatus, when the plurality of print images are input, the area can be expanded to contain all the images.
According to still another preferred aspect of the present invention, in the print data generating apparatus, the area containing all the print images constructed by the print image construction means is circular.
According to still another preferred aspect of the present invention, in the print data generating apparatus, the area containing all the print images constructed by the print image construction means is elliptic.
According to still another preferred aspect of the present invention, in the print data generating apparatus, the apparatus further comprises print information table storage means for retaining rasterized print images in divided band memories, and storing information for determining, in units of the band memories, whether printing has been performed, and third determination means for determining in units of band memories, on the basis of the stored information, whether printing has been performed, and generates a printer control command for the print image when the stored information indicates that printing has been performed.
According to still another preferred aspect of the present invention, in the print data generating apparatus, the band memory is divided in units of rectangles.
According to still another preferred aspect of the present invention, in the print control method, the condition is a name of an application serving as a source from which the print instruction is issued.
According to still another preferred aspect of the present invention, in the print control method, the condition is a specific function designated by the print instruction.
According to still another preferred aspect of the present invention, in the print control method, the condition is a hardware function of the printer.
According to still another preferred aspect of the present invention, in the print control method, the condition is that the print instruction is a special print instruction.
According to still another preferred aspect of the present invention, in the print control method, the condition for selecting the print mode is acquired from a printer driver unique to the printer.
According to still another preferred aspect of the present invention, in the print control method, the method further comprises the spool step of converting the print instruction into an intermediate code and temporarily storing the intermediate code, and the de-spool step of causing the graphics engine to regenerate the print instruction on the basis of the intermediate code stored in the spool step, and the control step includes causing the printer driver to generate the print data in accordance with the print instruction regenerated by the graphics engine.
According to still another preferred aspect of the present invention, in the print control method, the method further comprises the step of, when the graphics engine is caused to regenerate the print instruction, notifying the graphics engine of an ability of the printer driver in the print mode selected in the selection step, and causing the graphics engine to generate the print instruction in accordance with the ability.
According to still another preferred aspect of the present invention, in the print control method, the method further comprises the print mode storage step of storing print modes selected in the selection step in units of pages, and the control step includes changing the print mode in units of pages in accordance with the print mode stored in the print mode storage step.
According to still another preferred aspect of the present invention, in the print control method, the method further comprises the print mode storage step of storing print modes selected in the selection step in units of pages, the spool step includes generating an intermediate code for performing layout printing on a single paper sheet from a print instruction for a plurality of pages when the printer is to perform layout printing of the plurality of pages on the single paper sheet, and the control step includes causing the printer driver to generate the print data to be printed on the single paper sheet in the print modes stored in the print mode storage step in units of pages on the basis of the intermediate code.
According to still another preferred aspect of the present invention, in the print control method, the method further comprises the print mode storage step of storing the print modes, in units of pages, which are selected in the selection step in units of pages, the spool step includes the print mode rearranging step of converting the print instruction into an intermediate code and rearranging the print modes in the print mode storage step in accordance with a rearranged order of pages to be actually printed by the printer, and the control step includes changing the print modes in units of pages in accordance with the order changed in the print mode rearranging step, and causing the printer driver to generate the print data.
According to still another preferred aspect of the present invention, in the print control method, the print modes include a raster graphics print mode of converting the print data into raster data, and a vector graphics print mode of converting the print data into vector data.
According to still another preferred aspect of the present invention, in the print control method, the condition is a name of an application serving as a source from which the print instruction is issued.
According to still another preferred aspect of the present invention, in the print control method, the condition is a specific function designated by the print instruction.
According to still another preferred aspect of the present invention, in the print control method, the condition is a hardware function of the printer.
According to still another preferred aspect of the present invention, in the print control method, the condition is that the print instruction is a special print instruction.
According to still another preferred aspect of the present invention, in the print control method, the method comprises the spool step of converting the print instruction into an intermediate code and temporarily storing the intermediate code, and the de-spool step of causing the graphics engine to regenerate the print instruction on the basis of the intermediate code stored in the spool step, and the generating step includes generating the print data in accordance with the print instruction regenerated by the graphics engine.
According to still another preferred aspect of the present invention, in the print control method, the method further comprises the step of, when the graphics engine is caused to regenerate the print instruction, notifying the graphics engine of an ability in the generating step in the print mode selected in the selection step, and causing the graphics engine to generate the print instruction in accordance with the ability.
According to still another preferred aspect of the present invention, in the print control method, the method further comprises the print mode storage step of storing print modes selected in the selection step in units of pages, and the generating step includes changing the print mode in units of pages in accordance with the print mode stored in the print mode storage step.
According to still another preferred aspect of the present invention, in the print control method, the method further comprises the print mode storage step of storing print modes selected in the selection step in units of pages, the spool step includes generating an intermediate code for performing layout printing on a single paper sheet from a print instruction for a plurality of pages when the printer is to perform layout printing of the plurality of pages on the single paper sheet, and the generating step includes generating the print data to be printed on the single paper sheet in the print modes stored in the print mode storage step in units of pages on the basis of the intermediate code.
According to still another preferred aspect of the present invention, in the foregoing print control method, the method further comprises the print mode storage step of storing the print modes selected in the selection step in units of pages, the spool step includes the print mode rearranging step of converting the print instruction into an intermediate code and rearranging the print modes in the print mode storage step in accordance with a rearranged order of pages to be actually printed by the printer, and the generating step includes changing the print modes in units of pages in accordance with the order changedin the print mode rearranging step, and generating the print data.
According to still another preferred aspect of the present invention, in the foregoing print control method, the print modes include a raster graphics print mode of converting the print data into raster data, and a vector graphics print mode of converting the print data into vector data.
According to still another preferred aspect of the present invention, in the print data generating method, the area containing all the print images constructed in the print image construction step is rectangular.
According to still another preferred aspect of the present invention, in the print data generating method, the method further comprises the storage step of storing printed area information in units of print requests, and the second determination step of determining whether the area information stored in the storage step overlaps each of the scan lines, and the control command generating step includes generating a printer control command corresponding to a print image on the overlapping portion.
According to still another preferred aspect of the present invention, in the print data generating method, the scan lines are formed in units of horizontal lines each having a height of one pixel.
According to still another preferred aspect of the present invention, in the print data generating method, when the plurality of print images are input, the area can be expanded to contain all the images.
According to still another preferred aspect of the present invention, in the print data generating method, the area containing all the print images constructed in the print image construction step is circular.
According to still another preferred aspect of the present invention, in the print data generating method, the area containing all the print images constructed in the print image construction step is elliptic.
According to still another preferred aspect of the present invention, in the print data generating method, the method further comprises the print information table storage step of retaining rasterized print images in divided band memories, and storing information for determining, in units of the band memories, whether printing has been performed, and the third determination step of determining in units of band memories, on the basis of the stored information, whether printing has been performed, and a printer control command is generated for the print image when the stored information indicates that printing has been performed.
According to still another preferred aspect of the present invention, in the print data generating method, the band memory is divided in units of rectangles.